The present invention relates to the control of storage systems for digital computers. More particularly, the present invention relates to a defect management method and apparatus for a rotating media storage system.
An example of a magnetic media platter with embedded servo fields is illustrated in FIG. 1. These servo fields may also be referred to as servo bursts or servo marks. Each concentric circle schematically represents one track which is subdivided into multiple sectors and each radial line extending from the center outward, represents a servo field. A servo field contains data which are pre-written on the disk, during manufacturing of the disk, concerning the location of the servo field and the track on the disk for positioning of the read/write head relative to a particular track. The servo fields are then used by the controller for positioning of the read/write head during read and write operations. It is imperative therefore, that the data within the servo fields not be written over. In order not to write over the data within a servo field, the controller must know where the servo fields are and be able to suspend write operations over that area.
The usable regions for storage on the disk are located on the tracks, between the servo fields. Data to be stored on the disk are written in these regions between the servo fields, which will be referred to as a data region. The recording of data within these regions is measured in bits per inch (BPI). Assuming a constant bit density to record a bit, the number of bits which can be recorded between servo fields is much less for the inner circle, track 0, than the number of bits which can be recorded in the outermost circle, track N. Though possible, it is impractical to provide a unique recording and reading speed for each track. In order to take advantage of the higher storage potential of the outer tracks without exceeding the allowable density on the inner tracks, the disk is divided into multiple zones and a method of zone bit recording is used. The tracks are grouped into zones such that all the tracks in one zone are adjacent to each other. The data rate at which data are written to or read from the disk is constant for all tracks within a zone and different for each zone. Because the disk is rotated at the same speed for all the zones, in order to take advantage of the greater recording area of the outer zones, the recording speed is increased for the outer zones on the disk.
The data to be stored on a disk are broken up into manageable portions called sectors. Multiple sectors are generally stored on each track. An example of a typical format of a sector is illustrated in FIG. 2a. Each sector includes an ID field, a GAP field, a DATA field and a PAD field. The ID field is the unique identification tag for each sector in a track of a disk drive media and differentiates one sector from another. Within the ID field are four subfields, the ID PLO subfield, the ID AM subfield, the ID subfield and the CRC subfield. The ID PLO subfield is a multiple byte field of a known pattern which is used by the phase lock loop of the encoder/decoder (ENDEC) to synchronize to the incoming data stream. The ID AM subfield is a known pattern which is used by the drive controller to synchronize or align to the beginning of the ID subfield. This synchronization is necessary to align the disk controller to a data byte boundary, in order to differentiate each segment of data to a particular field. The ID subfield follows the ID AM subfield and contains the actual identification for the sector, including multiple bytes used to specify the address of the sector on the disk. The number of bytes within the ID subfield is at the discretion of the manufacturer of the disk drive and is controlled by the format of the particular disk drive used. The number of bytes within the ID subfield is the same for every sector and can comprise a cylinder high byte, a cylinder low byte, a sector number byte, a head number byte and a byte or two for defect management. The ID subfield is then followed by a fixed number of error detection bytes in the CRC subfield which are used to detect any errors in the ID field. Some formats, referred to as ID_Less formats, do not use an ID field, but rather use a header subfield within the DATA field.
The GAP field is a fixed number of bytes which are used to separate the ID field from the DATA field. The DATA field includes a DATA subfield and an error correction code (ECC) subfield. The DATA subfield is the portion of the sector where the actual data, which is communicated between the host computer and the disk drive, is stored. The ECC subfield is a fixed number of bytes tagged on to the end of the DATA subfield which are used to detect and correct soft or hard errors on the media within the capability of the code. The ECC subfield is used to avoid the transfer of erroneous data to and from the host computer.
A typical ID_Less sector format is illustrated in FIG. 2b. In ID_Less formats, the ID field is replaced by a header subfield within the DATA field, thus combining the identification data and the DATA field into one field and reducing the number of bits necessary for each sector. The header subfield can be brought under the protection of the same ECC field as the DATA field and therefore afforded the same protection as the DATA field. The CRC field associated with the header subfield can be decreased or eliminated, further reducing the overhead of the system and eliminating the hardware which generates the CRC field. In ID_Less formats, all of the information in the sector header may be predetermined by reading a small number of other sector headers on the track, usually one. The sync field or PLO field in an ID_Less format can be reduced in size or the reliability of the sync circuitry improved since the sync field will always occur immediately after a sector pulse.
The disk drive system performs three major operations: format, write and read. The disk drive can format the disk for storing data in the format supported by the system and the disk. The disk drive system also performs write operations to the disk to store data on the disk transmitted from the host computer to the disk drive system and read operations from the disk to read data from the disk and transmit it to the host computer. The disk is continuously rotating within the disk drive system, even as the read/write head moves between zones, which may cause the read/write head to cross over one or more servo fields as it travels from one track or zone to another track or zone. The controller circuit knows the angular position of the read/write head, but as the read/write head changes tracks between different zones, the number of sectors between servo marks changes, because of the change in bit density between zones. The controller does not know how to translate this angular position after a zone change into a known position on the track relative to the sectors and may be unable to determine the relative positioning of the sector pulses on the specific track. To re-orient itself on the disk, the hard disk controller will normally wait for the INDEX mark and orient itself from the INDEX mark for the track that it is on. However, waiting for the INDEX mark during a read or write operation increases the latency in reaching the next desired sector. This delay adds to the seek latency of the disk drive system.
After a recording media is manufactured it is tested by the manufacturer to determine the validity of each sector. Defects may be introduced during the manufacturing process which will damage a sector and prevent data from being stored in or retrieved from that sector. Defects are flaws within the medium, usually resulting from the presence of dust particles and other aberrations during the manufacturing process, that make a portion of the medium, usually a single sector, unsuitable for the storage of information.
The number of defects on a disk increases as the storage capacity per unit area of the disk drive system increases. Therefore as the storage capability of the storage medium is increased, it becomes more difficult and expensive manufacture flawless storage devices. It also becomes cost prohibitive to discard all of the flawed devices. For these reasons it is desirable to develop a scheme which allows a system with defects occurring on its medium to be saved and not discarded.
The manufacturer will identify the defective sectors which are detected after the manufacturing process in a list of defects, known as the xe2x80x9cprimary defect listxe2x80x9d or xe2x80x9cmanufacturer""s defect list.xe2x80x9d This list is stored directly on the disk in a reserved space, usually outside of the boundaries of the data tracks. Additional defective sectors, known as secondary or xe2x80x9cgrownxe2x80x9d defects may be detected after the manufacturer""s primary list has been compiled. A list of these xe2x80x9cgrownxe2x80x9d defects are maintained and stored in a secondary defect list also on the disk in a reserved space.
The primary and secondary lists are read from the disk and stored in the random access memory (RAM) upon power up of the disk drive system. The system controller then uses the information from the primary and secondary lists to manage the defects and avoid writing data to bad or defective sectors.
Many different defect management schemes have been used in the past. Using the method of linear replacement for defect management the defective sectors are flagged and mapped to a good sector somewhere else on the disk, which is substituting for the defective sector, causing the system to jump from the defective sector to the good sector and then back to the defective sector in order to read or write the data on the disk in a consecutive order. This mapping technique adds considerable latency to the system and degrades its performance because of the required jumps from the defective sectors to the mapped substituting good sector and back. Each sector on a track is identified consecutively by a physical address or physical sector number, representing the actual location of the sector on the track. A logical sector number is used by the system controller to read data from and write data to the disk drive.
An example of a system using the method of linear replacement is illustrated in FIG. 3a. The first track includes one spare sector at the physical sector number 31 and has two defective sectors at the physical sector numbers 1 and 2. The first defective sector is flagged as a defective sector and is mapped to the spare sector at the physical sector number 31 which is labelled as the logical sector number 1. Because the spare sector on the first track has been used, the second defective sector at the physical sector number 2 is flagged as a defective sector that is mapped off the track. The physical sector number 2 is labeled as the logical sector number 2 and the system must travel to another track in order to read the data from or write the data to the sector which is substituting for the defective physical sector number 2 and then travel back to the first track in order to read or write the information in a consecutive order.
An associated mapping value accompanies the second defective sector to inform the system where the substituting sector is located on the disk. This associated mapping value can be found in a pointer within the ID field of the defective sector or can be found in a defect table which lists all of the defective sectors and their associated substituting sectors.
The disadvantage of the method of linear replacement is that it requires extra seeks to be performed by the system if the system is to read or write the data in a consecutive order corresponding to the logical sector numbers. For the system illustrated in FIG. 3a to read the data from the first track in a consecutive order corresponding to the logical sector numbers it will read the logical sector number 0 first. To read the logical sector number 1 the system must jump to the physical sector number 31. When the logical sector number 1 has been read the system must then jump back to the logical sector number 2, which is located at the physical sector number 2. Because the logical sector number 2 is defective the system is pointed to the substituting sector on another track and must travel to that sector in order to read the data in the logical sector number 2. After the logical sector number 2 has been read the system then must travel back to the first track and read the remainder of the logical sector numbers 3-30 in a consecutive order. This method adds many extra seeks to the system and thereby increases the latency of the system.
An improvement over the linear replacement technique is the method of sector slipping which also uses spare sectors assigned to each track to avoid the defective sectors, but does not require as many seeks to be performed by the system. Each sector on a track is identified consecutively by a physical address or physical sector number, representing the actual location of the sector on the track. The sectors are numbered from zero to Nxe2x88x921, consecutively from the INDEX mark, where N is the number of sectors on the track. The sectors on a track are also identified by a logical sector number corresponding to their position within the sequence of data stored on the track. The logical sector number is used by the controller to read data from and write data to the disk drive. Not every sector will be assigned a logical sector number.
A typical system employing sector slipping will include spare sectors at the end of each track. In a sector slipping scheme the defective sector is mapped to the next good sector on the track until all spare sectors are used. During formatting of the disk drive, logical sectors are assigned consecutively from a first sector on the track to the last sector, slipping defective sectors until all spare sectors on the track are used.
FIG. 3b illustrates a typical track having thirty two sectors, numbered zero through thirty one where the last sector of the track is a spare. In the track of FIG. 3b there are no defective sectors and therefore the spare sector 31 is not used. FIG. 3c illustrates a track with a defective sector at the physical sector number 2. As can be seen from FIG. 3c, the logical sector numbers are slipped after the defective sector and the spare sector is used as the logical sector number 30.
After the track has been formatted and the logical sectors are mapped out, the system then performs a calculation to determine the location of the target sector which it must read from or write to. In the case of FIG. 3c, if the system was instructed to read from a sector having a target logical sector number 26, the system would add the number of defects appearing before that sector, to that logical sector number to know the physical sector number of the target logical sector number. Therefore, because there is one defective sector before the physical sector number 26, the correct physical address for the target sector number 26 would be at the physical sector number 27.
When the number of defects on a track is greater than the number of spares assigned to that track, the defective sectors are still slipped, but as soon as the number of defective sectors exceeds the number of spares on the track, the remainder of the defective sectors are not slipped, but are mapped to a sector on another track or somewhere else on the disk using the linear replacement method as described above. A system using the sector slipping method which includes a track with more defective sectors than spare sectors is illustrated in FIG. 3d. The first track in FIG. 3d includes one spare sector and two defective sectors. The first defective sector at the physical sector number 1 is skipped and the logical sector number 1 is slipped to the physical sector number 2 of the first track. The second defective sector at the physical sector number 29 is not slipped because the spare sector on the track has already been used. The logical sector number 28 is therefore flagged as a defective sector and mapped to a substituting sector somewhere else on the disk, in this case the spare sector at the physical sector number 31 on the track 1.
The method of sector slipping maintains the logical sectors in a consecutive order allowing the system to read or write the data in a consecutive order without extra seeks. Extra seeks are required when the number of defective sectors on the track or segment exceed the number of spare sectors assigned to the track or segment and the system must travel to another track or segment to read or write the data from a substituting spare sector and then back to the original track.
Circular slipping or wrapping is another defect management method which can be used to map the defective sectors to substituting sectors. In the method of circular slipping or wrapping, defective sectors are all slipped, even if the number of defective sectors exceeds the number of spare sectors. If the number of defects on the track does exceed the number of spares, then the defective sectors are used as logical sectors to ensure that each track has a fixed number of logical sectors. The defective sectors which are used as logical sectors are flagged as defective and are mapped to a substituting sector somewhere else on the disk.
A system employing circular slipping is illustrated in FIG. 3e. The first track of FIG. 3e includes one spare sector and has two defective sectors. Both of the defective sectors are slipped and the spare sector 31 is used as the logical sector number 29. Because the system expects thirty one logical sectors per track, the first defective sector is used as the logical sector number 30. This sector is flagged as defective and is mapped to a substituting sector somewhere on the disk, in this case the spare sector at the physical sector number 31 on the track 1.
In the systems of the prior art which utilize sector slipping or circular slipping, the defect information and flags referred to above were included in the ID field. In drives that use an ID_Less format the ID field is eliminated, and in general the sector must be identified without reading any subfield of the sector. It is therefore desirable for a system to automatically generate the defect information and corresponding flags.
A segment is a set of logically related tracks which are positioned adjacent to each other on the disk or medium. The tracks within a segment are consecutively numbered from 0 to M. The physical sectors within a segment are consecutively numbered from 0 to SNxe2x88x921, where SN is the number of physical sectors per segment, SL is the number of logical sectors per segment and P is the number of spare sectors per segment. Spare sectors are included at the end of a segment and defective sectors within a segment are slipped as described above for a track. The segment is treated as one contiguous storage space such that a defective sector is mapped to the next good sector within the segment and slipping occurs across the tracks within a segment. If the number of defective sectors for the segment exceeds the number of spare sectors included in the segment then the remainder of the defective sectors are mapped to substituting sectors somewhere else within the system. The concept of circular slipping can be applied to segment slipping, once the defective sectors within the segment exceed the spare sectors per segment, the remaining logical sectors are mapped to the defective sectors starting from the first defective sector within the segment. A special case of segment slipping is cylinder slipping where the segment is a cylinder of the disk.
A group of four tracks comprising a segment is illustrated in FIG. 5b. In the example of FIG. 5b, this segment or partition includes four tracks, each with thirty two physical sectors and two spare sectors at the end of the segment. A track base value TB for each track, specifies the beginning physical sector number PSN for the first sector of each track. A track displacement value TD includes the number of defective sectors in the tracks previous to the current track. The logical sectors are numbered consecutively throughout the segment, skipping the defective sectors. The first logical sector number of each track can be calculated by subtracting the track displacement value TD from the track base TB.
The first track in the example of FIG. 5b has a defective sector at the physical sector number 1. This defective sector is skipped and the physical sector number 2 is labelled as the logical sector number 1. The track displacement value TD for the second track is equal to one because of the one defective sector previous to the second track. The first logical sector number of the second track is therefore thirty one because the track base is thirty two and the track displacement value TD is one. The second track also includes a defective sector at the physical sector number 61. This defective sector is skipped and the physical sector number 62 is therefore labelled as the logical sector number 60. The track displacement value TD for the third track is equal to two because of the two defective sectors previous to the third track.
Automatic track processing requires hardware defect management and mapping the physical sector numbers on the track to logical sector numbers. This mapping of a physical sector number to a logical sector number must take into account the defect management strategy employed in the disk drive system and the skew, if any, of the system. A Logical Block Address (LBA) is a quantity which is kept for each non-defective sector and includes a cylinder number, a head or track number and a sector number. This LBA is translated to a Physical Block Address (PBA) which includes a cylinder, head and sector number. This translation is based on the assumption that there are a fixed number of logical sectors per track and/or segment.
One method which can be used to translate the LBA to a PBA, when the number of logical sectors per track is not constant, is based on the fact that the same address translation routine can be used if the target LBA is adjusted by the number of defective logical sectors with an LBA less than or equal to the target LBA that are slipped across the track. If there are no spare sectors used per track by the system then the adjustment will simply be the number of defective logical sectors with an LBA less than or equal to the target LBA. This translation method will require a table search. Other methods used for this translation will require extra seeks to perform the above translation if a segment slipping method is used.
The skew of a system is a parameter which combines the head skew, the cylinder skew and the zone skew and represents the number of sectors that the system travels over as it changes from one cylinder or track to another or from one zone on the disk to another. For example, as the system travels from the end of one track to the beginning of a subsequent track, the system may travel over a number of sectors before it is ready to begin the operation for that track. The systems described above did not have a skew and began logically numbering the sectors from the INDEX mark. Disk drive systems which do have a skew value will begin the logical sector numbering of sectors on the track from the first sector at which the system is ready to begin the operation, which is not at the beginning of the track or the INDEX mark. These systems would then number the logical sectors consecutively, beginning from this sector and would continue numbering the sectors until this sector is again reached.
An example of this numbering system, taking into account the skew of a system, is illustrated in FIG. 4. The skew value of this system is five sectors and therefore the system begins logically numbering from the physical sector number 5. After taking into account the skew of the system, this system can then implement any one or a combination of all of the defect management schemes described above. When the system comes to the physical sector number 31, it is assigned a logical sector number 25. The system then wraps around to the beginning of the track and the next logical sector number on this track is the physical sector number 0 because of the skew of the system. Therefore, the physical sector number 0 is assigned a logical sector number 26. As the system jumps from this track to the next track, the skew of the system must again be taken into account and the first logical sector number of the next track will consequently be the physical sector number 10.
A system which uses an ID_Less format was taught by Greenberg et al. in U.S. Pat. No. 4,656,532 issued on Apr. 7, 1987. Under the method taught by Greenberg, the system, by reading a single header of a sector, can ascertain the location of the logical sectors on the track, as long as the number of defective sectors on the track is less than the number of defective sectors for which information can be stored in the header. If the number of defective sectors on the track exceeds the number of defective sectors for which information can be stored in the header, then more than one header will have to be used to ascertain the information for the track. The header includes the offset of the first logical sector on the track and the locations of the defective sectors on the track that must be skipped. The method of Greenberg translates the target logical sector number to a target physical sector number and counts the sector pulses until the target physical sector is reached. The method of Greenberg does not teach a translation algorithm for translation of physical sector number to a logical sector number, and does not teach a method of translating physical to logical sector numbers and comparing the logical sector number with the target sector number for sector identification. The method of Greenberg et al. does not teach using a defect table in memory or using a first-in first-out (FIFO) stack for processing the track defects.
What is needed is a defect management method and apparatus which can be used with ID_Less formats, wherein the ID and DATA fields of a sector are merged. What is further needed is a method for automatic sector identification and track processing for disk drive systems which use the ID_Less format. What is also needed is a system which automatically supports the defect management schemes of the prior art without any real time intervention by the microprocessor in disk drive systems which use the ID_Less format.
Defect management for automatic track processing without an ID field, processes defect information for a track on a magnetic media within a disk drive system. A system which uses any method of defect management including linear replacement, sector slipping, cylinder slipping or segment slipping, can be supported. A physical sector number for each sector is translated to a logical sector number relating to the order of data on a track. This translation of the physical sector number to a logical sector number for automatic track processing can be accomplished using any one of three methods: 1) a track defect table can be built in the buffer RAM; 2) the defect information can be written in the header of every sector; or 3) a system FIFO, located in the onboard logic, can be used to manage the defect list. In the second method, the header subfield comprises four defect records. In the third method, if there are more defect records for the track than will fit in the FIFO, then after initialization and loading the first and second banks of the FIFO by the drive microprocessor, the first and second banks are each loaded by the drive microprocessor while the other is being processed, in a ping-pong manner, until the track processing is complete. A defect record includes a physical sector number of the defective sector, an offset number and a flag indicating whether or not the defective sector has been slipped. Defect flags are automatically generated by the system for each defective sector.